package pkg

import (
	"fmt"
	"github.com/aliyun/aliyun-oss-go-sdk/oss"
	beego "github.com/beego/beego/v2/server/web"
	"mime/multipart"
	"os"
)

// 阿里云上传图片
func Upload(filename string, file multipart.File) string {
	endpoint, _ := beego.AppConfig.String("Endpoint")
	accessKeyID, _ := beego.AppConfig.String("AccessKeyID")
	accessKeySecret, _ := beego.AppConfig.String("AccessKeySecret")
	bucketName, _ := beego.AppConfig.String("BucketName")
	uploadUrl, _ := beego.AppConfig.String("UploadUrl")
	// 创建OSSClient实例。
	// yourEndpoint填写Bucket对应的Endpoint，以华东1（杭州）为例，填写为https://oss-cn-hangzhou.aliyuncs.com。其它Region请按实际情况填写。
	client, err := oss.New(endpoint, accessKeyID, accessKeySecret)
	if err != nil {
		fmt.Println("Error:", err)
		os.Exit(-1)
	}

	// 填写存储空间名称，例如examplebucket。
	bucket, err := client.Bucket(bucketName)
	if err != nil {
		fmt.Println("Error:", err)
		os.Exit(-1)
	}

	// 依次填写Object的完整路径（例如exampledir/exampleobject.txt）和本地文件的完整路径（例如D:\\localpath\\examplefile.txt）。
	err = bucket.PutObject(filename, file)
	if err != nil {
		fmt.Println("Error:", err)
		os.Exit(-1)
	}
	return uploadUrl + filename
}
